using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using CompanyX.Insurance.La.DataContracts;
//using CompanyX.Insurance.La.FaultContracts;

namespace CompanyX.Insurance.La.ServiceContracts
{
    /// <summary>
    /// This is the interface definition for Life &amp; Annuity insurance claims notification transactions
    /// </summary>
    /// <remarks>ACORD v2.18.02 compliant (includes custom schema extensions for operation faults)</remarks>
    [XmlSerializerFormat]
    [ServiceContract(Name = "ClaimsNotification", Namespace = "urn:CompanyX.Insurance.La.ServiceContracts")]
    public interface IClaimsNotification
    {
        /// <summary>
        /// This message provides the Receiver with a notification that the Requestor has been contacted regarding 
        /// an event that has occurred relating to an insured entity, and may result in a Claim being filed under 
        /// one or more Holdings. It does not create the Claim, but merely functions as the notification of the possibility 
        /// of a Claim. Actions that result from the receipt of this notification are expected to vary by product and carrier.
        /// </summary>
        /// <param name="request">TXLife Request Data</param>
        /// <returns>TXLife Response Data</returns>
        [OperationContract(Name = "SendFirstNoticeOfLoss")]
        //[FaultContract(typeof(SendFirstNoticeOfLossFt))]
        [return: MessageParameter(Name = "TXLifeResponse")]
        TXLifeResponse SendFirstNoticeOfLoss([MessageParameter(Name = "TXLifeRequest")]TXLifeRequest request);
    }
}
